home *** CD-ROM | disk | FTP | other *** search
/ Internet Surfer 2.0 / Internet Surfer 2.0 (Wayzata Technology) (1996).iso / pc / text / mac / faqs.126 < prev    next >
Text File  |  1996-02-12  |  28KB  |  614 lines

  1. Frequently Asked Questions (FAQS);faqs.126
  2.  
  3.  
  4.  
  5.     setenv XFILESEARCHPATH /usr/lib/X11/%T/%N:$OPENWINHOME/lib/%T/%N
  6.  
  7. The value of this environment variable is a colon-separated list of
  8. pathnames.  The pathnames contain replacement characters as follows
  9. (see XtResolvePathname()):
  10.  
  11.     %N    The value of the filename parameter, or the
  12.         application's class name.
  13.     %T    The value of the file "type".  In this case, the
  14.         literal string "app-defaults"
  15.     %C    customization resource (R5 only)
  16.     %S    Suffix.  None for app-defaults.
  17.     %L    Language, locale, and codeset (e.g. "ja_JP.EUC")
  18.     %l    Language part of %L  (e.g. "ja")
  19.     %t    The territory part of the display's language string
  20.     %c    The codeset part of the display's language string
  21.  
  22. Let's take apart the example.  Suppose the application's class name is
  23. "Myterm". Also, suppose Open Windows is installed in /usr/openwin.
  24. (Notice the example omits locale-specific lookup.)
  25.  
  26.     /usr/lib/X11/%T/%N        means /usr/lib/X11/app-defaults/Myterm
  27.     $OPENWINHOME/lib/%T/%N    means /usr/openwin/lib/app-defaults/Myterm
  28.  
  29. As the application initializes, Xt tries to open both of the above
  30. app-defaults files, in the order shown.  As soon as it finds one, it
  31. reads it and uses it, and stops looking for others.  The effect of
  32. this path is to search first in /usr/lib/X11, then in /usr/openwin.
  33.  
  34. Let's consider another example. This time, let's set
  35. XUSERFILESEARCHPATH so it looks for the file Myterm.ad in the current
  36. working directory, then for Myterm in the directory ~/app-defaults.
  37.  
  38.     setenv XUSERFILESEARCHPATH ./%N.ad:$HOME/app-defaults/%N
  39.  
  40. The first path in the list expands to ./Myterm.ad.  The second expands
  41. to $HOME/app-defaults/Myterm.  This is a convenient setting for
  42. debugging because it follows the Imake convention of naming the
  43. app-defaults file Myterm.ad in the application's source directory, so
  44. you can run the application from the directory in which you are
  45. working and still have the resources loaded properly.
  46.  
  47. NOTE: when looking for app-default files with XUSERFILESEARCHPATH,
  48.       for some  bizarre reason, neither the type nor file suffix is
  49.       defined so %T and %S are useless.
  50.  
  51. With R5, there's another twist.  You may specify a customization
  52. resource value.  For example, you might run the "myterm" application
  53. like this:
  54.  
  55.     myterm -xrm "*customization: -color"
  56.  
  57. If one of your pathname specifications had the value
  58. "/usr/lib/X11/app-defaults/%N%C" then the expanded pathname would be
  59. "/usr/lib/X11/app-defaults/Myterm-color" because the %C substitution
  60. character takes on the value of the customization resource.
  61.  
  62. The default XFILESEARCHPATH, compiled into Xt, is:
  63.  
  64.         /usr/lib/X11/%L/%T/%N%C:\  (R5)
  65.         /usr/lib/X11/%l/%T/%N%C:\  (R5)
  66.         /usr/lib/X11/%T/%N%C:\     (R5)
  67.         /usr/lib/X11/%L/%T/%N:\
  68.         /usr/lib/X11/%l/%T/%N:\
  69.         /usr/lib/X11/%T/%N
  70.  
  71. (Note: some sites replace /usr/lib/X11 with a ProjectRoot in this
  72. batch of default settings.)
  73.  
  74. The default XUSERFILESEARCHPATH, also compiled into Xt, is
  75.  
  76.         <root>/%L/%N%C:\  (R5)
  77.         <root>/%l/%N%C:\  (R5)
  78.         <root>/%N%C:\     (R5)
  79.         <root>/%L/%N:\
  80.         <root>/%l/%N:\
  81.         <root>/%N:
  82.  
  83. <root> is either the value of XAPPLRESDIR or the user's home directory
  84. if XAPPLRESDIR is not set.  If you set XUSERFILESEARCHPATH to some
  85. value other than the default, Xt ignores XAPPLRESDIR altogether.
  86.  
  87. Notice that the quick and dirty way of making your application find
  88. your app-defaults file in your current working directory is to set
  89. XAPPLRESDIR to ".", a single dot.  In R3, all this machinery worked
  90. differently; for R3 compatibilty, many people set their XAPPLRESDIR
  91. value to "./", a dot followed by a slash.
  92.  
  93.  
  94. ----------------------------------------------------------------------
  95. 21. What order are callbacks executed in?
  96. ----------------------------------------------------------------------
  97. (Courtesy of Donna Converse, converse@expo.lcs.mit.edu; 5/10/92)
  98.  
  99. The Intrinsics library do not guarantee an order.  This is because
  100. both the widget writer and the application writer have the ability to
  101. modify the entire contents of the callback list.  Neither one
  102. currently knows what the other is doing and so the Intrinsics cannot
  103. guarantee the order of execution.
  104.  
  105. The application programmer cannot rely on the widget writer; the
  106. widget writer is not required to document when the widget will add and
  107. remove callbacks from the list or what effect this will have;
  108. therefore the functionality contained in a callback should be
  109. independent of the functionality contained in other callbacks on the
  110. list.
  111.  
  112. Even though the Xt standard in the definition of XtAddCallback
  113. says:
  114.  
  115.      "callback_name: Specifies the callback list to which the
  116.      procedure is to be appended."
  117.  
  118. you may not infer from the word "appended" that the callback routines
  119. are called in the same order as they have been added to the callback
  120. list.
  121.  
  122. ----------------------------------------------------------------------
  123. 22. How do I know if a widget is visible?
  124. ----------------------------------------------------------------------
  125. (Courtesy of Donna Converse, converse@expo.lcs.mit.edu; 5/14/92)
  126.  
  127. > I am building a widget needs to know if it is visible. I set the visible
  128. > interest field in Core and if my window is completely obscured, the Core
  129. > visible flag goes FALSE. However, if my window is iconified, the flag
  130. > stays set to TRUE.
  131.  
  132. Right, everything is implemented correctly.  This demonstrates a "deficiency"
  133. in the X protocol, and the Core widget is reflecting the capabilities of the
  134. protocol.  (The "deficiency" is that the information is available in one way,
  135. in this case an inconvenient way.)  The Xt specification is accurate, in
  136. the second and third paragraphs of section 7.10.2, so read this section
  137. carefully.  The visible field will not change in response to iconification.
  138.  
  139. A VisibilityNotify event will not be received when the window goes from
  140. viewable to unviewable, that is, when the widget or an ancestor is unmapped;
  141. that is, when iconification occurs.  This is the protocol deficiency.
  142. Visibility state and viewable state have specific meanings in the X protocol;
  143. see the glossary in your Xlib and X protocol reference manual.
  144.  
  145. > Is this a problem with "mwm" or is there something
  146. > else which needs to be done?
  147.  
  148. You'll see this with any window manager, with no window manager.
  149.  
  150. > If the problem is "mwm", what is the fastest
  151. > way to determine if a window is iconified?
  152.  
  153. As an application writer, keep track with a global Boolean in an action
  154. routine with translations for MapNotify and UnmapNotify on the Shell widget
  155. which contains your custom widget.  As the custom widget writer, see the
  156. map_state field returned by a call to XGetWindowAttributes.  These are
  157. suggestions.
  158.  
  159. ----------------------------------------------------------------------
  160. 23. How do I reparent a widget in Xt, i.e. XtReparentWidget()?
  161. ----------------------------------------------------------------------
  162.  
  163. You can't.
  164.  
  165. ----------------------------------------------------------------------
  166. 24. Why use XtMalloc, XtFree, etc?
  167. ----------------------------------------------------------------------
  168.  
  169. Unfortunately, most code that calls malloc(), realloc() or calloc()
  170. tends to ignore the possibility of returning NULL.  At best it is
  171. handled something like:
  172.  
  173.     ptr = (type *) malloc (sizeof (type))
  174.     if (!ptr)
  175.     {
  176.         perror ("malloc in xyzzy()");
  177.         exit (1)
  178.     }
  179. To handle this common case the Intrinsics define the functions
  180. XtMalloc(), XtCalloc(), XtNew(), XtNewString() and XtRealloc() which
  181. all use the standard C language functions malloc(), calloc() and
  182. realloc() but execute XtErrorMsg() if a NULL value is returned.  Xt
  183. error handlers are not supposed to return so this effectively exits.
  184.  
  185. In addition, if XtRealloc() is called with a NULL pointer, it uses
  186. XtMalloc() to get the initial space.  This allows code like:
  187.  
  188.     if (!ptr)
  189.         ptr = (type *) malloc (sizeof (type));
  190.     else
  191.         ptr = (type *) realloc (ptr, sizeof (type) * (count + 1));
  192.     ++count;
  193.  
  194. to be written as:
  195.  
  196.     ptr = XtRealloc (ptr, sizeof (ptr) * ++count);
  197.  
  198. Also, XtFree() accepts a NULL pointer as an argument.  Generally, I've
  199. found the Xt functions conveniant to use.  However, anytime I'm
  200. allocating anything potentially large I use the standard functions so
  201. I can fully recover from not enough memory errors.
  202.  
  203. XtNew() and XtNewString() are conveniant macros for allocating a
  204. structure or copying a string:
  205.  
  206.       struct abc *xyzzy;
  207.       char         *ptr;
  208.       char         *str = "abcdef";
  209.  
  210.       xyzzy = XtNew (struct abc);    /* takes care of type casting */
  211.       ptr = XtNewString (str);
  212.  
  213. Just to emphasize this, the Xt memory allocators are required to be
  214. compatible and so interchangeable with the standard C library memory
  215. allocators.
  216.  
  217. A common error for Motif programmers is to use XtFree() on a string
  218. when they should really be using XmStringFree().
  219.  
  220. ----------------------------------------------------------------------
  221. 25. How to debug an Xt application?
  222. ----------------------------------------------------------------------
  223. First, I'd recomend getting "purify" from Pure Software.  This is a
  224. great package for tracing memory problems on Sun's.  It's a bit pricey
  225. at $2750 but I'd still recomend it.  Excuse the marketing blurb
  226. (contact support@pure.com for more info).
  227.  
  228.     Purify inserts additional checking instructions directly into
  229.     the object code produced by existing compilers.  These
  230.     instructions check every memory read and write performed by
  231.     the program under test and detect several types of access
  232.     errors, such as reading unitialized memory, writing past
  233.     malloc'd bounds, or writing to freed memory.  Purify inserts
  234.     checking logic into all of the code in a program, including
  235.     third party and vendor object-code libraries, and verifies
  236.     system call interfaces.  In addition, Purify tracks memory
  237.     usage and identifies individual memory leaks using a novel
  238.     adaption of garbage collection techniques.  Purify's nearly
  239.     comprehensive memory access checking slows the target program
  240.     down typically by a factor of two to five.
  241.  
  242. An alternative package that isn't as pricey ($395 for a Sun), runs on
  243. many Unix's and has pretty similar features is "The SENTINEL Debugging
  244. Environment".  This replaces malloc() and several other C library
  245. functions to add additional checks.  (contact cpcahil@virtech.vti.com
  246. for more info)
  247.  
  248. Next, if you are getting any sort of Xlib error, you'll need to run in
  249. synchronous mode, easily accompished with the "-sync" command line
  250. argument or by setting the variable Xdebug to 1 with your debugger.  Then
  251. set a break point in exit().  This will let you trace back to the
  252. original Xlib function being called.  If you don't run in synchronous
  253. mode, then the actual error may have occured any number of calls to
  254. Xlib previously since the Xlib calls are buffered and replies from the
  255. server are asynchronous.
  256.  
  257. Next, if you are having trouble with window layout, you can use the
  258. undocumented resource "xtIdentifyWindows" or the class resource
  259. "XtDebug" to cause the widget name to be identified with each window.
  260. For example:
  261.  
  262.     example% xload -xrm '*XtDebug:true' &
  263.     example% xwininfo -tree
  264.          <click in new xload window>
  265.  
  266. will give the normal information but the widget name and class of each
  267. window is included.  This can help for checking the location and size
  268. of errant widgets.
  269.  
  270. Next, if you are having trouble with geometry managers or you want to
  271. test the way a widget manages it's children, you can try
  272. export.lcs.mit.edu:contrib/libXtGeo.tar.Z.  This acts as a filter
  273. between any children and a geometry manager and checks the behaviour
  274. of both.  It's a very clever idea.
  275.  
  276. The most unfortunate problem is debugging a callback while the
  277. application is executing a grab of the keyboard or mouse (such as from
  278. a pulldown menu).  The server effectively locks up and you'll need to
  279. go to another machine and kill the debugger manually.  The server
  280. locks up because the application being debugged has said no one else
  281. can have access to the keyboard but the application is not stopped
  282. waiting because the debugger is waiting for your commands.
  283. Unfortunately you can't give them because all the input is going to
  284. your application which is stopped.
  285.  
  286. The best way to debug this kind of problem is with two machines on
  287. your desk, running the program under a debugger (or other environment)
  288. on one machine, and running the application on the other, possibly
  289. using a command sequence like this:
  290.  
  291.     othermachine% xhost +thismachine
  292.     thismachine% setenv DISPLAY othermachine:0;
  293.     thismachine% gdb application    # Your favorite debugger.
  294.     or this:
  295.     othermachine% xhost +thismachine
  296.     thismachine% gdb application
  297.     (gdb) set environment DISPLAY othermachine:0
  298.     (gdb) run ...
  299.  
  300. I believe CodeCenter, a C interpreter/graphical debugger has a method
  301. of dealing with this by explicitely calling the Xlib functions to
  302. release any grabs during breakpoints.
  303.  
  304. Debugging widget problems requires pretty good debugging skills and
  305. knowledge of how widgets work.  You can go a long way without knowing
  306. the internals of a particular widget but not very far without
  307. understanding how a widget works.  Judicious use of conditional
  308. breakpoints and adding print statements with the debugger help a great
  309. deal.
  310.  
  311. ----------------------------------------------------------------------
  312. 26. Why don't XtAddInput(), XtAddTimeout() and XtAddWorkProc() work?
  313. ----------------------------------------------------------------------
  314.    I have got a delicate problem with the three routines XtAddInput,
  315.    XtAddTimeOut and XtAddWorkProc. The problem I have is that when
  316.    I use them in my application they seem not to be registred properly.
  317.    I have made a handy little testprogram where everything works
  318.    perfect, but in my "real" application nothing happens.
  319.  
  320. The introduction in R3 of the XtApp*() functions obsoleted those
  321. routines.  What happens is they use a default application context
  322. different then the one you may have created.  Since events and
  323. timeouts are distributed on a per application context basis and you
  324. are using two application contexts, you won't get those events.
  325.  
  326. For example:
  327.  
  328.     ...
  329.     cnt = 0;
  330.     toplevel = XtAppInitialize(&app, class,
  331.                    Desc, XtNumber (Desc),
  332.                    &argc, argv,
  333.                    Fallback, args, cnt);
  334.  
  335.     XtAddTimeOut (...)
  336.     XtAddWorkProc (...)
  337.  
  338.     XtAppMainLoop (app)
  339.  
  340. would never invoke the timeout.
  341.  
  342. --
  343. Pete Ware / Ohio State University /        228 Bolz Hall  (614) 292-7318
  344.            ware@cis.ohio-state.edu        2036 Neil Ave.
  345.            (h) (614) 538-0965            Columbus, OH 43210
  346. Welcome William Patrick Ware to the world!  Born 10/21/92, 8lbs 6.2oz (3.83kg)
  347. Xref: bloom-picayune.mit.edu comp.specification.z:623 news.answers:4293
  348. Path: bloom-picayune.mit.edu!enterpoop.mit.edu!eru.mt.luth.se!lunic!sunic!mcsun!uknet!comlab.ox.ac.uk!zforum-request
  349. From: zforum-request@comlab.ox.ac.uk
  350. Newsgroups: comp.specification.z,news.answers
  351. Subject: comp.specification.z Frequently Asked Questions (Monthly)
  352. Summary: Information about the Z formal specification notation
  353. Message-ID: <z-faq_723175204@newsserv>
  354. Date: 1 Dec 92 02:00:10 GMT
  355. Expires: Tue, 12 Jan 1993 02:00:04 GMT
  356. Sender: news@comlab.ox.ac.uk
  357. Reply-To: zforum-request@comlab.ox.ac.uk
  358. Followup-To: comp.specification.z
  359. Organization: Oxford University Computing Laboratory, UK
  360. Lines: 233
  361. Approved: news-answers-request@MIT.Edu
  362. Supersedes: <z-faq_720583203@newsserv>
  363. Originator: news@topaz.comlab
  364.  
  365. Archive-name: z-faq
  366. Last-modified: 25 Nov 1992
  367.  
  368.  
  369. NAME:     comp.specification.z
  370. STATUS:   unmoderated
  371. PURPOSE:  Discussion concerning the formal specification notation Z.
  372.  
  373. (If you have read this before, changed and new sections are marked with
  374. `|' in the right hand margin.)
  375.  
  376. Questions have been marked with "Subject:" at the start of the line to
  377. allow some newsreaders to scan them easily (e.g., "^G" within "rn").
  378.  
  379. Subject: What is it?
  380.  
  381. The comp.specification.z USENET newsgroup was established in June 1991
  382. and is intended to handle messages concerned with the formal
  383. specification notation Z. It has an estimated readership of around
  384. 20,000 people worldwide.  Z, based on set theory and first order
  385. predicate logic, has been developed at the Programming Research Group
  386. (PRG) at the Oxford University Computing Laboratory and elsewhere for
  387. well over a decade.  It is now used by industry as part of the software
  388. (and hardware) development process in both the UK and the US. It is
  389. currently undergoing BSI standardization in the UK.  Comp.specification.z
  390. provides a convenient forum for messages concerned with recent
  391. developments and the use of Z.  Pointers to and reviews of recent books
  392. and articles are particularly encouraged. These will be included in the
  393. Z bibliography (see below) if they appear in comp.specification.z.
  394.  
  395. Subject: What if I know someone interested without access to USENET news?
  396.  
  397. Electronic mailing list: There is an associated Z FORUM mailing list
  398. that was initiated in January 1986 by Ruaridh Macdonald, RSRE, UK.
  399. Articles are now automatically cross-posted between comp.specification.z
  400. and the mailing list for those whose do not have access to USENET
  401. news.  This may apply especially to industrial Z users who are
  402. particularly encouraged to subscribe and post their experiences to the
  403. list.  Please contact <zforum-request@comlab.ox.ac.uk> with your name,
  404. address and e-mail address to join the mailing list (or if you change
  405. your e-mail address or wish to be removed from the list). Readers are
  406. strongly urged to read the comp.specification.z newsgroup rather than
  407. the Z FORUM mailing list if possible. Messages for submission to the Z
  408. FORUM mailing list and the comp.specification.z newsgroup may be
  409. e-mailed to <zforum@comlab.ox.ac.uk>.
  410.  
  411. Subject: What if I know someone interested without access to e-mail?
  412.  
  413. Postal mailing list: If you wish to join the postal Z mailing list,
  414. please send your address to the industrial liaison secretary at OUCL,
  415. 11 Keble Road, Oxford OX1 3QD, UK (tel +44-865-272579, fax
  416. +44-865-273839) or on <Joan.Arnold@comlab.ox.ac.uk>. This will ensure
  417. you receive details of Z meetings, etc., particularly for people
  418. without access to electronic mail.
  419.  
  420. Subject: What if I know someone interested without access to postal mail?
  421.  
  422. Be reasonable! :-)
  423.  
  424. Subject: How can I join in?
  425.  
  426. Subscribers: If you are currently using Z, you are welcome to introduce
  427. yourself to the newsgroup and Z FORUM list by describing your work with
  428. Z. You may also advertise any publications concerning Z which you or
  429. your colleagues produce. These will then be automatically added to the
  430. master Z bibliography maintained at the PRG and updated for the annual
  431. Z User Meetings held each December.
  432.  
  433. Subject: Where are the back issues and other public Z-related files?
  434.  
  435. Archive: There is an automatic mail-based electronic archive server at
  436. the PRG which contains all the back-issues and messages on Z FORUM and
  437. comp.specification.z, as well as a selection of other Z-related files.
  438. Send an e-mail message containing the command "help" to the address
  439. <archive-server@comlab.ox.ac.uk> for further information on how to use
  440. the server. A command of "index z" will list the Z-related files.
  441. If you have serious trouble accessing the archive server, please
  442. contact the address <archive-management@comlab.ox.ac.uk>.
  443.  
  444. FTP access: The archive is also available via anonymous FTP on the
  445. Internet. Type the command "ftp ftp.comlab.ox.ac.uk" (or alternatively
  446. "ftp 192.76.25.2" if this does not work) and use "anonymous" as the
  447. login id and your e-mail address as the password when prompted. The FTP
  448. command "cd Zforum" will get you into the Z archive directory.  The
  449. file "README" gives some general information and "00index" gives a list
  450. of the files. (Retrieve these using the FTP command "get README", for
  451. example.)
  452.  
  453. Subject: What tools are available?
  454.  
  455. Tools: various tools for formatting, type-checking and aiding proofs
  456. used Z are available.  A free LaTeX style file and documentation can be
  457. obtained from the PRG archive server. To receive this via e-mail, send
  458. a message containing the command "send z zed.sty zguide.tex" to the PRG
  459. archive server (see above).  A similar style and type-checker called
  460. fuzz are available commercially.  Send the command "send z fuzz" to the
  461. archive server for an order form.
  462.   CADiZ, a suite of tools for checking and typesetting Z specifications
  463. is available from York Software Engineering, University of York, YORK
  464. YO1 5DD, UK (tel +44-904-433741, fax +44-904-433744). This is based
  465. around Unix troff, but LaTeX support is planned. Contact David Jordan
  466. at York on <yse@minster.york.ac.uk> for further information.
  467.   The B-Tool can be used to check proofs concerning parts of Z
  468. specifications.  This is licensed by Edinburgh Portable Compilers Ltd,
  469. 17 Alva Street, Edinburgh EH2 4PH, UK (tel +44-31-225-6262, fax
  470. +44-31-225-6644). Contact the Distribution Manager on the address
  471. <support@epc.ed.ac.uk> for further information.  A Z proof tool called
  472. zedB, which is based on the B-Tool, was presented at the 1991 Z User
  473. Meeting; this may be made available in due course.
  474.  
  475. Subject: How can I learn about Z?
  476.  
  477. Courses: There are a number of courses on Z run by industry and
  478. academia. Oxford University offers industrial short courses in the use
  479. Z.  As well as introductory courses, recent newly developed material
  480. includes advanced Z-based courses on proof and refinement, partly based
  481. around the zedB tool.  Courses are held in Oxford, or elsewhere (e.g.,
  482. on a company's premises) if there is enough demand. For further
  483. information, contact Jim Woodcock (tel +44-865-272576, fax
  484. +44-865-273839) on <Jim.Woodcock@comlab.ox.ac.uk>.
  485.   Logica Cambridge offer a five day course on Z and a three day
  486. introductory course on formal methods (mainly Z).  For dates and prices
  487. contact Debi Kearney on +44-223-66343 ext 4859.
  488.   Praxis Systems runs a range of Z (and other formal methods) courses.
  489. For details contact Anthony Hall on +44-225-444700 or <jah@praxis.co.uk>.
  490.  
  491. Subject: What has been published about Z?
  492.  
  493. Publications: A BibTeX bibliography of Z-related publications is
  494. available from the PRG archive server (see above).  Information on
  495. Oxford University Programming Research Group (PRG) Technical Monographs
  496. and Reports, including many on Z, is available from the librarian on
  497. <library@comlab.ox.ac.uk>.
  498.   The following books specifically concerning Z have been or are due to
  499. be published (in approximate chronological order):
  500.  
  501.   I.Hayes (ed.), Specification case studies, Prentice Hall International
  502.       Series in Computer Science, 1987.
  503.   J.M.Spivey, Understanding Z: a specification language and its formal
  504.       semantics, Cambridge University Press, 1988.
  505.   D.Ince, An introduction to discrete mathematics and formal system
  506.       specification, Oxford University Press, 1988.
  507.   J.C.P.Woodcock & M.Loomes, Software engineering mathematics, Pitman, 1988.
  508.   A.Diller, Z: an introduction to formal methods, Wiley, 1990.
  509.   J.E.Nicholls (ed.), Z user workshop, Oxford 1989, Springer-Verlag,
  510.       Workshops in Computing, 1990.
  511.   B.Potter, J.Sinclair & D.Till, An introduction to formal specification
  512.       and Z, Prentice Hall International Series in Computer Science, 1991.
  513.   D.Lightfoot, Formal specification using Z, MacMillan, 1991.
  514.   A.Norcliffe & G.Slater, Mathematics for software construction,
  515.       Ellis Horwood, 1991.
  516.   J.E.Nicholls (ed.), Z user workshop, Oxford 1990, Springer-Verlag,
  517.       Workshops in Computing, 1991.
  518.   I.Craig, The formal specification of advanced AI architectures,
  519.       Ellis Horwood, September 1991.
  520.   M.Imperato, An introduction to Z, Chartwell-Bratt, 1991.
  521.   J.M.Spivey, The Z notation: a reference manual, 2nd ed., Prentice Hall
  522.       International Series in Computer Science, 1992. (1st ed., 1989) +     |
  523.   J.B.Wordsworth, Software development with Z, Addison-Wesley, 1992.
  524.   S.Stepney, R.Barden & D.Cooper (eds.), Object orientation in Z,
  525.       Springer-Verlag, Workshops in Computing, August 1992.
  526.   J.E.Nicholls (ed.), Z user workshop, York 1991, Springer-Verlag,
  527.       Workshops in Computing, 1992.
  528. Announced:
  529.   I.Hayes (ed.), Specification case studies, 2nd ed., Prentice Hall
  530.       International Series in Computer Science, 1992.
  531.   J.A.McDermid & P.Whysall, Formal system specification and implementation
  532.       using Z, Prentice Hall International Series in Computer Science, 1992.
  533.   J.C.P.Woodcock, Using standard Z, Prentice Hall International Series
  534.       in Computer Science, 1992-93.
  535.  
  536.   + Widely considered as the current de facto standard for Z.
  537.  
  538. Subject: What is object-oriented Z?
  539.  
  540. Several object-oriented extensions to or versions of Z have been
  541. proposed.  The book "Object orientation in Z", listed above, is a
  542. collection of papers describing various OOZ approaches -- Hall, ZERO,
  543. MooZ, Object-Z, OOZE, Schuman&Pitt, Z++, ZEST and Fresco (an OO VDM
  544. method) -- in the main written by the methods' inventors, and all
  545. specifying the same two examples.
  546.  
  547. Subject: How can I run Z?!
  548.  
  549. Z is a (non-executable in general) specification language, so there is
  550. no such thing as a Z compiler/linker/etc. as you would expect for a
  551. programming language. Some people have looked at animating subsets of Z
  552. for rapid prototyping purposes, using logic and functional programming
  553. for example, but this work is preliminary and is not really the major
  554. point of Z, which is to increase human understandability of the
  555. specified system and allow the possibility of formal reasoning and
  556. development.
  557.  
  558. Subject: Where can I meet other `Z' people?
  559.  
  560. Meetings: VDM'91 was held on 21-25 October 1991, at Noordwijkerhout,
  561. The Netherlands.  The meeting included papers on Z, and the proceedings
  562. are available as two volumes in Springer-Verlag LNCS 551 (conference)
  563. and 552 (tutorials). The scope of the symposium has expanded during
  564. the last years to include other formal notations and techniques,
  565. including Z. Therefore the name of the symposium will be changed to
  566. Formal Methods Europe.  The first FME Symposium will be held at Odense
  567. Technical College in Denmark, during the week of 19 to 23 April, 1993.
  568. The programme chairman is Jim Woodcock, Oxford University Computing
  569. Laboratory, 11 Keble Road, Oxford OX1 3QD, UK (tel +44-865-272576, fax
  570. +44-865-273839, email <Jim.Woodcock@comlab.ox.ac.uk>). For further
  571. details, send a message containing the command "send z fme93" to the
  572. PRG archive server (see above).
  573.   The 6th annual Z User Meeting was held on 16-17 December 1991, at the
  574. University of York, England.  A 7th meeting with an industrial theme is
  575. to be held on 14-15 December 1992 at the DTI (UK Department of Trade
  576. and Industry), Victoria, London.  For further details, including a
  577. registration form and information on the programme, send a message          |
  578. containing the command "send z zmeeting92" to the PRG archive server
  579. (see above).
  580.   The 5th Refinement Workshop was held on 8-10 January 1992, at Lloyd's
  581. Register of Shipping, Fenchurch Street, London, England. The proceedings
  582. should also be published in the Springer-Verlag Workshops in Computing
  583. series. The next workshop is planned for January 1994. Please contact
  584. Roger Shaw on <ttercs@aie.lreg.co.uk> (tel +44-81-681-4747, fax
  585. +44-81-681-6814) for further information.
  586.   Details of Z-related meetings may be advertised on comp.specification.z
  587. if desired. All the above meetings are likely to be repeated in some form.
  588.  
  589. Subject: What if I've spotted a mistake or omission?
  590.  
  591. Updates: Please send corrections or new relevant information about
  592. meetings, books, tools, etc., to <zforum-request@comlab.ox.ac.uk>.
  593. New questions and model answers are also gratefully received!
  594.  
  595. --
  596. Jonathan Bowen, <Jonathan.Bowen@comlab.ox.ac.uk>
  597. Programming Research Group, Oxford University Computing Laboratory, UK.
  598. Xref: bloom-picayune.mit.edu comp.sys.acorn.announce:75 comp.sys.acorn:12768 news.answers:4663
  599. Newsgroups: comp.sys.acorn.announce,comp.sys.acorn,news.answers,comp.answers
  600. Path: bloom-picayune.mit.edu!enterpoop.mit.edu!snorkelwacker.mit.edu!stanford.edu!ames!haven.umd.edu!uunet!mcsun!sun4nl!star.cs.vu.nl!gpvos
  601. From: gpvos@cs.vu.nl (Gerben 'P' Vos)
  602. Subject: Acorn ftp and mail-server archives (fortnightly posting)
  603. Message-ID: <acorn-archives_724733103@galei.cs.vu.nl>
  604. Followup-To: poster
  605. Summary: All known Acorn-related archives on and around the Internet
  606. Keywords: acorn,archives,ftp,mail servers
  607. Sender: news@cs.vu.nl
  608. Supersedes: <acorn-archives_723523503@galei.cs.vu.nl>
  609. Organization: Fac. Wiskunde & Informatica, VU, Amsterdam
  610. Date: Sat, 19 Dec 1992 02:45:30 GMT
  611. Approved: aglover@acorn.co.uk,news-answers-request@mit.edu
  612. Expires: Sat, 16 Jan 1993 02:45:03 GMT
  613. Lines: 331
  614.